/**
 * Copyright &copy; 2012-2017 <a href="https://vivo.com">vivo</a> All rights reserved.
 */
package com.vivo.employee.entity;

import com.thinkgem.jeesite.modules.sys.entity.Office;
import org.hibernate.validator.constraints.Length;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import javax.validation.constraints.NotNull;
import com.thinkgem.jeesite.common.utils.excel.annotation.ExcelField;

import com.thinkgem.jeesite.common.persistence.DataEntity;

/**
 * 任职调整Entity
 * @author jyangye
 * @version 2017-12-28
 */
public class  ViEmpPostAdjust extends DataEntity<ViEmpPostAdjust> {
	
	private static final long serialVersionUID = 1L;
	private String name;		// 员工姓名
	private String code;		// 员工编号
	private String employeeId;		// 员工编号
	private String adjustType;		// 调整类型
	private String beforeLevelId;		// 原岗位级别
	private String afterLevelId;		// 新岗位级别
	private Date makeTime;		// 生效时间
	private Date beginMakeTime;		// 开始 生效时间
	private Date endMakeTime;		// 结束 生效时间


    private Office comp;

    private Office bDept;
    private Office bPost;
    private Office aDept;
    private Office aPost;

    private String isActive;

    private Date endPostTime;
	
	public ViEmpPostAdjust() {
		super();
	}

	public ViEmpPostAdjust(String id){
		super(id);
	}

	@Length(min=1, max=64, message="员工姓名长度必须介于 1 和 64 之间")
	@ExcelField(title="员工姓名", align=2, sort=10)
	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}
	
	@Length(min=1, max=64, message="身份证号长度必须介于 1 和 64 之间")
	@ExcelField(title="*身份证号", align=2, sort=20, isText = true)
	public String getCode() {
		return code;
	}

	public void setCode(String code) {
		this.code = code;
	}

	public String getEmployeeId() {
		return employeeId;
	}

	public void setEmployeeId(String employeeId) {
		this.employeeId = employeeId;
	}


    @ExcelField(title="原部门", align=2, sort=30)
    public Office getbDept() {
        return bDept;
    }

    public void setbDept(Office bDept) {
        this.bDept = bDept;
    }

    @ExcelField(title="原职位", align=2, sort=40)
    public Office getbPost() {
        return bPost;
    }

    public void setbPost(Office bPost) {
        this.bPost = bPost;
    }

    @Length(min=0, max=32, message="原岗位级别长度必须介于 0 和 32 之间")
    @ExcelField(title="原岗位级别", align=2, sort=50)
    public String getBeforeLevelId() {
        return beforeLevelId;
    }

    public void setBeforeLevelId(String beforeLevelId) {
        this.beforeLevelId = beforeLevelId;
    }


	
	@Length(min=1, max=32, message="调整原因长度必须介于 1 和 32 之间")
	@ExcelField(title="*调整原因", align=2, sort=60, dictType = "emp_adjust_type")
	public String getAdjustType() {
		return adjustType;
	}

	public void setAdjustType(String adjustType) {
		this.adjustType = adjustType;
	}


    @ExcelField(title="*现部门", align=2, sort=110)
    public Office getaDept() {
        return aDept;
    }


    public void setaDept(Office aDept) {
        this.aDept = aDept;
    }

    @ExcelField(title="*现职位", align=2, sort=120)
    public Office getaPost() {
        return aPost;
    }

    public void setaPost(Office aPost) {
        this.aPost = aPost;
    }

    @Length(min=0, max=32, message="新岗位级别长度必须介于 0 和 32 之间")
	@ExcelField(title="*现级别", align=2, sort=130)
	public String getAfterLevelId() {
		return afterLevelId;
	}

	public void setAfterLevelId(String afterLevelId) {
		this.afterLevelId = afterLevelId;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd")
	@NotNull(message="生效时间不能为空")
	@ExcelField(title="*生效日期", align=2, sort=140)
	public Date getMakeTime() {
		return makeTime;
	}

	public void setMakeTime(Date makeTime) {
		this.makeTime = makeTime;
	}
	
	public Date getBeginMakeTime() {
		return beginMakeTime;
	}

	public void setBeginMakeTime(Date beginMakeTime) {
		this.beginMakeTime = beginMakeTime;
	}
	
	public Date getEndMakeTime() {
		return endMakeTime;
	}

	public void setEndMakeTime(Date endMakeTime) {
		this.endMakeTime = endMakeTime;
	}


    public Office getComp() {
        return comp;
    }

    public void setComp(Office comp) {
        this.comp = comp;
    }

    public String getIsActive() {
        return isActive;
    }

    public void setIsActive(String isActive) {
        this.isActive = isActive;
    }

    public Date getEndPostTime() {
        return endPostTime;
    }

    public void setEndPostTime(Date endPostTime) {
        this.endPostTime = endPostTime;
    }
}